public class Test {

      public class TreeNode {
          int val;
          TreeNode left;
          TreeNode right;
          TreeNode() {}
          TreeNode(int val) { this.val = val; }
          TreeNode(int val, TreeNode left, TreeNode right) {
              this.val = val;
              this.left = left;
              this.right = right;
         }
      }

    class Solution {
        public TreeNode invertTree(TreeNode root) {
            if(root == null){
                return null;
            }
            TreeNode tmp = root.left;
            root.left = root.right;
            root.right = tmp;


            invertTree(root.left);
            invertTree(root.right);


            return root;
        }




        public boolean isSameTree(TreeNode p, TreeNode q) {
            if(p == null && q != null || q == null && p != null ){
                return false;
            }
            //两个都为空
            if(p == null && q == null){
                return true;
            }
            //两个都不为空
            if(p.val != q.val){
                return false;
            }
            return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
        }

    }

}
